Added Connectivity Manager Implementation Basis and Delegate Objects#43537
Conversation
9fbe1fc to
236696d
Compare
There was a problem hiding this comment.
Code Review
This pull request introduces a new base class NetworkManagementBasis and a delegate interface NetworkManagementDelegate to create a more pluggable network management infrastructure for Linux. The changes are well-structured and align with the goal of refactoring the connectivity manager. I have a few suggestions to improve code conciseness and adhere to C++ best practices for performance.
Note: Security Review did not run due to the size of the PR.
src/platform/Linux/ConnectivityManagerImpl_NetworkManagementBasis.cpp
Outdated
Show resolved
Hide resolved
src/platform/Linux/ConnectivityManagerImpl_NetworkManagementBasis.h
Outdated
Show resolved
Hide resolved
src/platform/Linux/ConnectivityManagerImpl_NetworkManagementDelegate.h
Outdated
Show resolved
Hide resolved
|
PR #43537: Size comparison from d93b463 to 236696d Full report (34 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, nxp, psoc6, qpg, realtek, stm32, telink)
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #43537 +/- ##
==========================================
- Coverage 54.07% 54.07% -0.01%
==========================================
Files 1548 1549 +1
Lines 106709 106717 +8
Branches 13308 13309 +1
==========================================
+ Hits 57704 57705 +1
- Misses 49005 49012 +7 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
src/platform/Linux/ConnectivityManagerImpl_NetworkManagementBasis.cpp
Outdated
Show resolved
Hide resolved
src/platform/Linux/ConnectivityManagerImpl_NetworkManagementBasis.cpp
Outdated
Show resolved
Hide resolved
src/platform/Linux/ConnectivityManagerImpl_NetworkManagementBasis.cpp
Outdated
Show resolved
Hide resolved
src/platform/Linux/ConnectivityManagerImpl_NetworkManagementBasis.h
Outdated
Show resolved
Hide resolved
src/platform/Linux/ConnectivityManagerImpl_NetworkManagementDelegate.h
Outdated
Show resolved
Hide resolved
src/platform/Linux/ConnectivityManagerImpl_NetworkManagementBasis.cpp
Outdated
Show resolved
Hide resolved
src/platform/Linux/ConnectivityManagerImpl_NetworkManagementBasis.cpp
Outdated
Show resolved
Hide resolved
src/platform/Linux/ConnectivityManagerImpl_NetworkManagementBasis.cpp
Outdated
Show resolved
Hide resolved
src/platform/Linux/ConnectivityManagerImpl_NetworkManagementBasis.cpp
Outdated
Show resolved
Hide resolved
src/platform/Linux/ConnectivityManagerImpl_NetworkManagementBasis.cpp
Outdated
Show resolved
Hide resolved
eac3ffe to
3ed0be1
Compare
|
PR #43537: Size comparison from dcf0576 to 3ed0be1 Full report (6 builds for cc32xx, nrfconnect, realtek, stm32)
|
andy31415
left a comment
There was a problem hiding this comment.
Seems ok, assuming we replace const bool & with just bool
|
@gerickson it seems master zap was broken (not your PR). You probably need to merge with master again after the fix in #43554 |
3ed0be1 to
97cd103
Compare
|
PR #43537: Size comparison from 2c98999 to 97cd103 Full report (34 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, nxp, psoc6, qpg, realtek, stm32, telink)
|
…ement delegate.
This delegate is used by a concrete network management basis
implementation to report changes in Wi-Fi medium availability to
an owning coordinator (typically the platform Connectivity Manager
implementation).
Wi-Fi medium availability reflects whether the underlying Wi-Fi
control plane / radio resources are usable for Wi-Fi operations
(for example, whether the Wi-Fi interface is present and powered,
and not blocked or otherwise unavailable).
The coordinator may use these notifications to:
* Update cached Connectivity Manager state.
* Drive Device Layer events and diagnostic attributes.
* Coordinate ownership or arbitration of Wi-Fi radio resources
between operational Wi-Fi usage (station / AP) and the
Wi-Fi Neighbor Awareness Networking (NAN) Unsynchronized Service
Discovery (USD) / Public Action Frame (PAF) commissioning
transport.
Concrete implementations should assume that notifications may be
delivered from an implementation-defined execution
context. Delegates should avoid blocking for extended periods.
A lightweight base class providing delegate wiring for Linux
Connectivity Manager network management implementations.
This serves as a common base for concrete Linux Connectivity
Manager network management backends (for example, Connection
Manager- (also known as, connman) or wpa_supplicant-based
management).
The class provides:
* Storage and management of an optional network management
delegate.
* A protected action-delegation helper for reporting Wi-Fi
medium availability changes to the delegate.
This base does not define the full network management
control-plane API. Instead, it provides a small amount of shared
"glue" used to coordinate cross-cutting concerns between the
network management backend and the owning platform Connectivity
Manager implementation (which may also be coordinating the Wi-Fi
NAN USD / PAF commissioning transport).
…ux platform static library sources.
…platform static library sources.
97cd103 to
49e92e2
Compare
|
PR #43537: Size comparison from fa956ce to 49e92e2 Full report (34 builds for bl602, bl616, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, nxp, psoc6, qpg, realtek, stm32, telink)
|
Summary
Per #42516 and this overview, this introduces two new pieces of infrastructure en route to enabling the end goal of more-pluggable Matter network management infrastructure for Linux.
Connectivity Manager Implementation Network Management Delegate
This delegate is used by a concrete network management basis implementation to report changes in Wi-Fi medium availability to an owning coordinator (typically the platform Connectivity Manager implementation).
Wi-Fi medium availability reflects whether the underlying Wi-Fi control plane / radio resources are usable for Wi-Fi operations (for example, whether the Wi-Fi interface is present and powered, and not blocked or otherwise unavailable).
The coordinator may use these notifications to:
Connectivity Manager Implementation Network Management Basis Class
A lightweight base class providing delegate wiring for Linux Connectivity Manager network management implementations.
This (will) serve(s) as a common base for concrete Linux Connectivity Manager network management backends (for example, Connection Manager- (also known as, connman) or wpa_supplicant-based management).
The class provides:
This base does not define the full network management control-plane API. Instead, it provides a small amount of shared "glue" used to coordinate cross-cutting concerns between the network management backend and the owning platform Connectivity Manager implementation (which may also be coordinating the Wi-Fi NAN USD / PAF commissioning transport).
Related issues
#42516
Testing
An armvl-unknown-linux-gnu device has been successfully paired / commissioned using the iOS 26.2 Apple "Home" app with a Connectivity Manager implementation using this infrastructure.